<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div class="box" style="width: 18px;height: 18px;background-color: red;">
        <span>1</span>
        <span>2</span>
        <span>3</span>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>
    <script>
        //正则隐藏手机号中间四位数
        // let str = '13100672353'
        // let arr = /^(\d{3})\d{4}(\d{4})$/
        // let newStr = str.replace(arr,'$1****$2')
        // console.log(newStr);

        //为什么0.1+0.2 ! == 0.3，如何让其相等  
        // let n = 0.1
        // let m = 0.2
        // let sum = 0.3
        // console.log((n+m).toFixed(2) == sum)

        //NaN 是一个特殊值，它和自身不相等，是唯一一个非自反的值
        //console.log(NaN == NaN)//false;

        //如何判断一个对象是空对象
        // let obj = {}
        // if(JSON.stringify(obj) == '{}'){
        //     console.log('空');
        // }else{
        //     console.log('非空');
        // }

        // if(Object.keys(obj).length<1){
        //     console.log('空');
        // }else{
        //     console.log('非空');
        // }


        //可以使用递归函数来计算1-10的和，如下所示：

        // function sum(num) {
        //     if (num === 1) {
        //         return 1;
        //     }
        //     return num + sum(num - 1);
        // }

        // console.log(sum(10)); // 输出55

        //闭包的写法  统计函数的调用次数
        // function str(){
        //     let num =1
        //     function str1(){
        //         num++
        //         console.log(`函数调用了${num}次`);
        //     }
        //     return str1
        // }
        // const re = str()
        // re()

        //使用arguments计算数组的和
        // function sum(){
        //     let sum = 0 
        //     for(let i = 0;i<arguments.length;i++){
        //         sum +=arguments[i]
        //     }
        //     console.log(sum);
        // }
        // sum(1,2,3,4,5)

        //展开运算符：将一个数组/对象进行展开， 求最大/最小值
        // const arr = [1,2,3,4,5]
        // console.log(Math.max(...arr))//5
        // console.log(Math.min(...arr))//1

        // filter 筛选数组元素
        //  const arr=[10,20,30,40,50]
        //  const newArr = arr.filter(function(e){
        //     return e>20
        //  })
        //  console.log(newArr);

        //创建对象的三种方式
        // const newObj = {data:1}

        // const str = new Object()
        // str.name= '小明'

        // //构造函数（首字母大写，调用时候new）
        // function Arr(name,age){
        //         this.name=name
        //         this.age=age
        // }
        // const arr = new Arr('小明','18')
        // console.log(arr);

        //Object.assign(目标对象, 源对象)  对象的拷贝   assign 赋值的意思
        // const arr = {name:'牛子', age:18 , gender:'男'}
        // const arr2 = {sex: 2}
        // console.log(Object.keys(arr))
        // console.log(Object.values(arr))
        // let newArr = []
        // let niu = Object.assign(newArr,arr)
        // niu.name = '小米'
        // console.log(niu);
        // //拼接
        // let niu2 = Object.assign({},arr,arr2)
        // console.log(niu2);

        //数组reduce方法求和
        // const arr = [1, 2, 3, 4, 5]
        // let str = arr.reduce(function (prev, curr) {
        //     return prev + curr
        // })
        // console.log(str);

        //every和some 方法
        // const arr = [10,20,30,40]
        // let str = arr.every(e=>e>10)
        // console.log(str)//false
        // let str2 = arr.some(e=>e>10)
        // console.log(str2)//true

        //Array.from方法 将伪数组转为真数组
        // const arr =document.querySelectorAll('span')
        // console.log(arr)
        // const newArr = Array.from(arr)
        // console.log(newArr);

        // //将字符串分割为数组
        //  let arr = '213213132'
        // // let newArr = Array.from(arr)//不改变源  
        // // console.log(newArr)

        // let newArr = arr.split('')
        // console.log(newArr);
        // console.log(arr);  //不改变源    ‘
        //翻转字符
        // let str = '我爱中国'
        // let newStr = str.split('').reverse().join('')
        // console.log(newStr);

        //取小数点后两位(四舍五入)
        // const str = 0.51531
        // console.log(str.toFixed(2))

        //constructor属性
        // function Person(name, age) {
        //     this.name = name;
        //     this.age = age;
        // }
        // var person1 = new Person("Alice", 25);
        // console.log(person1.constructor); // 输出：Person(name, age) 原型

        //数据扁平化
        // const arr = [1,2,3,[4,[5,[[6]]]]]
        // let newArr = arr.flat(Infinity)
        // console.log(newArr)

        //防抖
        // function fun(){
        //     console.log('1');
        // }
        // document.querySelector('.box').addEventListener('click',_.debounce(fun,1000))


        //节流
        // function fun(){
        //     console.log('1')
        // }
        // document.querySelector('.box').addEventListener('click',_.throttle(fun,2000))

        // form-serialize 快速收集表单的值
        // const form = document.querySelector('.form')
        // // 参数1 form表单，要取值的表单元素需要在form表单中
        // // 参数2 插件的设置，{}
        // const data = serialize(form, { hash: true, empty: true })
        

        //将字符串转为对象
        // const url = "name=zs&age=18"
        // function f(url) {
        //     const arr = url.split('&')
        //     let obj = {}
        //     arr.forEach(ele => {
        //         const newArr = ele.split('=')
        //         console.log(newArr[1]);
        //         obj[newArr[0]] = newArr[1]
        //     });
        //     console.log(obj);
        // }
        // const obj = f(url)

        //把数字转换为货币格式 例（12,345）
        	// document.querySelector('#input-txt').addEventListener('keyup', e => {
			// let value = e.target.value //输入框值
			// let length = value.length//输入值的长度
			// let arr = value.split('') //把输入值转成数组
			// let newArr = []

			// arr.reverse().forEach((ele, index) => {
			// 	newArr.push(ele)
			// 	if (index % 3 === 2) {
			// 		newArr.push(',')
			// 	}
			// })
			// let arr2 = newArr.reverse()
			// if (arr2.length > 0 && arr2[0] === ',') {
			// 	arr2.splice(0, 1)
			// }
			// document.querySelector('.box2').innerHTML = arr2.join('')
			// console.log(arr2)
        
            //删除1
            // let arr ='2131231242152'
            // let newArr = arr.split('1').join('')
            // console.log(newArr);
        
    </script>
</body>

</html>